## Практика 1 Строки (срезы)

### Задание 1. Напишите программу отображения первых четырех символов из введенной строки. Будем полагать, что строка гарантированно длиной не менее четырех символов.
> Входные данные:
panda

> Выходные данные:
pand

### Задание 2.  Напишите программу отображения последних трех символов из введенной строки. Будем полагать, что строка гарантированно длиной не менее трех символов.
> Входные данные:
Пушкин

> Выходные данные:
кин

### Задание 3.  Напишите программу отображения всех символов с нечетными индексами из введенной строки.
> Входные данные:
Pushkin

> Выходные данные:
uhi

### Задание 4.  Вводятся две строки (каждая с новой строчки). Из первой строки выделить все символы с четными индексами, а из второй - с нечетными. Объединить строки через пробел и вывести на экран.

> Входные данные:
Hello
Python

> Выходные данные:
Hlo yhn

### Задание 5.  Из введенной строки отобразить первые пять символов в обратном порядке. Полагается, что введенная строка имеет минимум пять символов.

> Входные данные: abrakadabra

> Выходные данные: karba

### Задание 6. Вводятся два слова (через пробел в одной строке). Длина первого слова меньше второго. Необходимо обрезать второе слово до длины первого и отобразить обрезанное слово на экране.

> Входные данные:
Hello Pushkin

> Выходные данные:
Pushki

### Задание 7. (на повторение) Напишите программу на Python для форматирования числа в процентах с использованием возможностей f-строк или метода format.



## Практика 2 Строки (методы)



### Задание 1. Вводится строка. Необходимо определить число вхождений дефисов (-) в этой строке. На экране отобразить полученное число.

> Входные данные: osnovnye-metody-strok

> Выходные данные: 2

### Задание 2. Вводится слово. Необходимо первую букву этого слова сделать заглавной, а остальные - малыми. 

> Входные данные: HELLO

> Выходные данные: Hello


### Задание 3. Вводится строка, состоящая из слов, разделенных пробелом. Необходимо подсчитать число слов в этой строке.

> Входные данные: I love Python

> Выходные данные: 3

### Задание 4a. Вводится строка, состоящая из названий городов, разделенных пробелом. Необходимо преобразовать эту строку, чтобы названия городов шли через точку с запятой. 

> Входные данные:
`Москва Тверь Казань`

> Выходные данные:
`Москва;Тверь;Казань`

### Задание 4б. Вводится строка, состоящая из названий городов, в виде многострочной строки 

> Входные данные:
```
Москва
Тверь
Казань
```
> Выходные данные:

`Москва;Тверь;Казань`

### Задание 5. Пользователь Василий очень часто злоупотребляет восклицательными знаками!
Напишите программу, которая будет заменять восклицательные знаки на точки.

Дана произвольная строка.
```python
text = "Вася самый умный! Вася лучше всех! И ждет его успех!"
```


### Задание 6. Вводится строка (слаг). Замените в этой строке все двойные дефисы (--) и тройные (---) на одинарные (-). 

> Входные данные:

dobavlyaem---slagi--slug-k--url---adresam

> Выходные данные:

dobavlyaem-slagi-slug-k-url-adresam


### Задание 7. Вводится четырехзначное число. 

Проверить, что оно оканчивается на цифру 7. 

Вывести на экран `ДА`, если это так и `НЕТ` - в противном случае.

> Входные данные:
`8117`

> Выходные данные:
`ДА`


## Задание 8. Вводится слово.

Проверить, что в этом слове присутствуют все три буквы: `t, h и o` (в произвольном порядке). 

Реализовать программу с помощью одного условного оператора. 

Если проверка проходит, вывести `ДА`, иначе - `НЕТ`.

> Входные данные:
`Python`

> Выходные данные:
`ДА`



### Задание 9.  Вводится строка. С помощью метода String.find найдите в этой строке индекс первого вхождения фрагмента "ra". 
> Входные данные:
`abrakadabra`

> Выходные данные:
`2`


## Задание 10. "Симметричное число". 

Дано четырехзначное число. Определите, является ли оно симметричным.

Число считается симметричным, если оно читается одинаково слева направо и справа налево.

Пример симметричного числа: `2442`

> Формат входных данных

`Дано целое положительное четырехзначное число`

> Формат выходных данных

`Вывести "Да", если число симметричное и "Нет" в противоположном случае`

## Задание 11. Вводится слово. 

Необходимо определить, является ли это слово палиндромом (одинаково читается вперед и назад, например, АННА).

Регистр букв не учитывать.
 
Если введенное слово палиндром, на экран вывести `ДА`, иначе - `НЕТ`.

> Входные данные:
`Шалаш`

> Выходные данные:
`ДА`

## Задание 12. Вводится шестизначное число. 

Определить, является ли оно счастливым. 
(Счастливым называют такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр.). 

Вывести `ДА`, если счастливое и `НЕТ` - в противном случае.
> Входные данные:
`811235`

> Выходные данные:
`ДА`

## Задание 13. Определить, произведение цифр в числе 
> Входные данные:
`811235`

> Выходные данные:
`240`


## Задание 14. Вводится целое число k (1 <= k <= 365). 

Определить, каким днем недели `(понедельник, вторник, среда, четверг, пятница, суббота или воскресенье)` является k-й день не високосного года, в котором 1 января является понедельником. 

Определить какая по счету неделя идет от конца года

> Входные данные:
`121`

> Выходные данные:
`вторник`


### Задание 15. Для повышения безопасности, пароли пользователей должны соответствовать требованиям. 

Проверьте, соответствует ли данный пароль предложенным требованиям.
### Требования к паролю:

*	Минимум 6 символов
*	Должен содержать спецсимвол `#`
*	Должен начинаться с большой буквы
* Вывести "безопасный", если строка пароля соответствует требованиям безопасности или "не безопасный" в противоположном случае.


Входные данные  |  Выходные данные
---------|-------
`a12345`	|	не безопасный
`F12#34`	|	безопасный
`F12$3`	|	не безопасный
`#Derpassword` |	не безопасный
`Derpassword#`	| безопасный



### Задание 17. Вводятся три целых положительных числа (максимум трехзначные) через пробел в одну строчку. 

Для двухзначных и однозначных чисел нужно добавить слева незначащие нули так, чтобы все числа содержали по три цифры. 

> Входные данные:
`8 11 123`

> Выходные данные:
```
008
011
123
```


## Задача 18. Имеются строка следующего содержимого:
```        
Сергей Ковалев
Ирина Егорова

```
Необходимо прочитать эти данные и сформировать из них вывод в  виде:

> Ковалев C., Егорова И.

### Задание 19*. Вашей программе на вход подаются две строки s и t, состоящие из строчных латинских букв.
Выведите одно число – количество вхождений строки t в строку s.
Пример:
```
s = "abababa"
t = "aba"
```
Вхождения строки t в строку s:
```
abababa
abababa
abababa
Sample Input 1:
abababa
aba
Sample Output 1:
3
Sample Input 4:
aaaaa
a
Sample Output 4:
5
```



## Практика 4 Строки (спецсимволы, экранирование, raw)


### Задание 1. Необходимо задать строку со следующим содержимым: 
> Тема занятия "спецсимволы". 

Отобразить ее на экране (кавычки у слова спецсимволы также должны быть отображены).

### Задание 2.  Вводится два слова в одну строку через пробел.

Поставьте между этими словами символ обратного слеша (вместо пробела). Результирующую строку отобразите на экране.

> Входные данные:

Hello Pushkin!
> Выходные данные:
Hello\Pushkin!


### Задание 3. Используя raw-строки, задайте строку, содержащую этот путь к файлу: C:\WINDOWS\System32\drivers\etc\hosts. 

> Входные данные:
C:\WINDOWS\System32\drivers\etc\hosts

> Выходные данные:
C:\WINDOWS\System32\drivers\etc\hosts

### Задание 4.  Вводится слово. Необходимо сформировать новую строку, где введенное слово будет заключено в двойные кавычки. 
> Входные данные:
language

> Выходные данные:
"language"


### Задание 5. Вводится строка. Необходимо найти все индексы фрагмента "ра" во введенной строке. Вывести в строку через пробелы найденные индексы. Если этот фрагмент ни разу не будет найден, то вывести значение -1.

> Входные данные:
Барабанщик бил бой в барабан

> Выходные данные:
2 23

## Практика 4 Цикл while

### Задание 1.  "Лесенка символами"
Вывести лесенку из n ступенек символами *.

Примеры:
```
n = 3
*
**
***
n = 5

*
**
***
****
*****
```

### Задание 2. "Обратный отсчет". Выведите все целые числа от n до 0 включительно.

> Формат входных данных
`Дано целое положительно число n`

> Формат выходных данных
`Выведите все числа, требуемые по условию задачи`

### Задание 3.  Даны два целые числа `a и b`.

Выведите на экран все целые четные числа от `a до b` включительно.
> Формат входных данных
Даны два целые числа. 

Гарантируется, что `a < b`.

### Задание 4. Вывести в строку через пробел квадраты целых чисел в диапазоне [n; m]. 
> Входные данные:
`2 4`

> Выходные данные:
`4 9 16`

### Задание 5. Вводится целое положительное число n. 

Вычислить и вывести на экран сумму: `1 + 1/2 + 1/3 + ... + 1/n` с точностью до тысячных (три знака после запятой). 

> Входные данные:
`8`

> Выходные данные:
`2.718`

### Задание 5. Вводится стоимость одной книги x рублей (вещественное число).

 Необходимо вывести на экран в строчку через пробел стоимости `2, 3, ... 10` таких книг с точностью до десятых. 
 
 Программу реализовать при помощи цикла `while`.

> Входные данные:
`34.6`

> Выходные данные:
`69.2 103.8 138.4 173.0 207.6 242.2 276.8 311.4 346.0`



### Задание 6. Строка  состоит из символов X, Y и Z.

Определите длину самой длинной последовательности, состоящей из символов X.

> Входные данные:
`XXXYYXXYZXXYXZYXXXYYXXXXXXXXYZXYXXXYXYZYYZXYXXXXXXXXXYXZXYYXYYYXXXYXYZYYXYXYZXYXXYYXZXXXXYXZXYXYXXXYXXZXXYYZYXXXYYYYZXYYXXZXXXXYXXXYXXXZZXXXZYYZXXZXXXYXXYXXYYXYYXZYXYXZXZYXXYXXXYXXXZYYYYXXXXXZXZXXYXZXZXXZZZYYZXXXXYYZXZYXYYXXZYYXXYXZXXZXXYYXXZXXYYXZXXYXZYXXXXYZXZYXXXYXYYXYXYZYXXXXYXYXXXYXXXXXYYXYXYYXXYZXZYXYXYYZXXXZYXYYYYZYYYZYXXXYYYYYYXZXYYZXZYYXYZZXZXXZYYYYXXXYYXXXXYXZXXYXYXXYYZZZXXYXXXYXYXYXXYZXXYZXXXYXYYXZXYYXXXYXXYXZXZYYXXZXXXXYXYYXXXXZXXYYZZXXXZXXZYXXYXXZYZYXXYYZXYXYYXYYXYYYYZYXXZYYZXXZXYXYZX`

> Выходные данные
`9`

### Задание 7. В строке из предыдущего задания определить длину самой длинной последовательности, состоящей из разных символов.


### Задание 8.  Подсчитать количество гласных(русских) букв во введенной строке без учета регистра.

```python
text = "В теории, теория и практика неразделимы. На практике это не так."
vowels = "ауоыэяюёие"
```
### Задание 9. "Подсчет длинных слов". Определить в предоставленном сообщении количество слов длиной больше, чем 5.
Дана строка текста, слова разделены пробелами, знаки препинания отсутствуют.

```python
text = "Lorem ipsum dolor sit amet consectetur adipiscing elit Integer porttitor bibendum nisi ut convallis ante"
```

### Задание 10. На каждой итерации цикла пользователь вводит целое число. 

Цикл продолжается, пока не встретится число `0`. 

Необходимо вычислить сумму введенных в цикле чисел и вывести результат на экран.


> Входные данные:
```
8
11
2
-4
0
```
> Выходные данные:
`17`


### Задание 11.  Последовательность Фибоначчи образуется так: первые два числа равны 1 и 1, а каждое последующее равно сумме двух предыдущих.

Имеем такую последовательность чисел: `1, 1, 2, 3, 5, 8, 13, ...` 

Постройте последовательность `Фибоначчи` длиной `n` (n вводится с клавиатуры). 

Результат отобразите в виде строки полученных чисел, записанных через пробел.

> Входные данные:
`8`

> Выходные данные:
`1 1 2 3 5 8 13 21`

### Задание 12. Вирус каждые 3 часа делится на 2 новых вируса. 

Определить, сколько вируосв будет через `n` часов (n - целое положительное число, вводимое с клавиатуры). 

Считать, что изначально была один вирус. 

Результат вывести на экран.

> Входные данные:
`11`

> Выходные данные:
`8`

### Задание 13. Гражданин 1 января открыл счет в банке, вложив 1000 руб. 

Каждый год размер вклада увеличивается на 5% от имеющейся суммы. 

Определить сумму вклада через n лет (n - целое положительное число, вводимое с клавиатуры).

 Результат округлить до сотых и вывести на экран. 

> Входные данные:
5

> Выходные данные:
1276.28

### Задание 14.  Составить программу поиска всех трехзначных чисел, которые при делении на 47 дают в остатке 43 и кратны 3. 


> Входные данные:

> Выходные данные:
`231 372 513 654 795 936`


### Задание 15. Вводятся целые числа в одну строчку через пробел.

Необходимо преобразовать эти данные в список целых чисел.
Затем, перебрать этот список в цикле и просуммировать все нечетные значения. 

> Входные данные:
`8 11 -2 4 0 13 19 12 7`

> Выходные данные:
`50`

### Задание 16. Вводятся названия городов в одну строчку через пробел. 

Необходимо преобразовать входные данные и вывести на экран в виде последовательности чисел (длин слов) через пробел в одну строчку.
> Входные данные:
`Москва Уфа Караганда Тверь Минск Казань`

> Выходные данные:
`6 3 9 5 5 6`

### Задание 15.  Определить, что в этом списке все города имеют длину более 5 символов. 

Вывести `ДА`, если условие выполняется и `НЕТ` - в противном случае.

> Входные данные:
`Самара Ульяновск Новгород Воронеж`

> Выходные данные:
`ДА`

### Задание 16.  Вводится список имен студентов в одну строчку через пробел. 

Определить, что хотя бы одно имя в этом списке начинается и заканчивается на ту же самую букву (без учета регистра). 

Вывести `ДА`, если условие выполняется и `НЕТ` - в противном случае.

> Входные данные:
`Петр Анна Иван Сергей Михаил Федор`

> Выходные данные:
`ДА`


## Практика 5 For

### Задание 1. С помощью функции range() сформируйте следующую последовательность чисел:

`0, 1, 2, ..., 10`
Результат выведите в виде последовательности чисел, записанных через пробел в одну строчку.

> Входные данные:

> Выходные данные:
`0 1 2 3 4 5 6 7 8 9 10`

### Задание 2. С помощью функции `range()` сформируйте следующую последовательность чисел:
`10, 9, 8, ..., 0`
Результат выведите в виде последовательности чисел, записанных через пробел в одну строчку.
> Входные данные:

> Выходные данные:
`10 9 8 7 6 5 4 3 2 1 0`

### Задание 3. С помощью функции `range()` сформируйте следующую последовательность чисел:
`-10, -8, -6, -4, -2`

Результат выведите в виде последовательности чисел, записанных через пробел в одну строчку.
> Входные данные:

> Выходные данные:
`-10 -8 -6 -4 -2`

### Задание 4. С помощью функции range() сформируйте следующую последовательность чисел:

`1, 4, 7, 10, 13, 16, 19`
Результат выведите в виде последовательности чисел, записанных через пробел в одну строчку.
> Входные данные:

> Выходные данные:
`1 4 7 10 13 16 19`


### Задание 5. Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

1.  Складываются первая и вторая, а также вторая и третья цифры исходного числа.

2.  Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Пример. Исходное число: `348`. 

Суммы: `3 + 4 = 7; 4 + 8 = 12`. 

Результат: `127`. 

Укажите наименьшее число, в результате обработки которого автомат выдаст число `1412`.

Ответ: `395`.

### Задание 9. Вводится список названий городов в одну строчку через пробел. 

Перебрать все эти названия с помощью цикла for и определить, начинается ли название следующего города на последнюю букву предыдущего города в списке. 

Если последними встречаются буквы `'ь', 'ъ', 'ы'`, то берется следующая с конца буква. 

Вывести на экран ДА, если последовательность удовлетворяет этому правилу и `НЕТ` - в противном случае.

> Входные данные:
`Москва Абакан Новгород Донецк Кострома`

> Выходные данные:
`ДА`

### Задание 10. Вводится натуральное число `n`. Вычислить сумму всех натуральных чисел меньше `n`, которые кратны или 3 или 5.

Результат (сумму) вывести на экран. 

Пример: `n = 10`, имеем числа: `3, 5, 6, 9`. 

Их сумма равна `23`.
> Входные данные:
`21`

> Выходные данные:
`98`

### Задание 11. Вводится натуральное число n. С помощью цикла for найти все делители этого числа. 

Найденные делители выводить сразу в столбик без формирования списка.
> Входные данные:
`12`

> Выходные данные:
```
1
2
3
4
6
12
```

### Задание 12. Вводится натуральное число n. 

С помощью цикла `for` определить, является ли оно простым (то есть, делится нацело только на само себя и на 1). 

Вывести на экран `ДА`, если n простое и `НЕТ` - в противном случае.

> Входные данные:
`11`

> Выходные данные:
`ДА`



# Практика 6 Вложенные циклы

### Задание 1. С помощью вложенных циклов запрограммировать вывод таблицы умножения


### Задание 2. Напишите программу, которая ищет среди целых чисел, 

принадлежащих числовому отрезку `[2422000; 2422080]`, простые числа. 

Выведите все найденные простые числа в порядке возрастания, слева от каждого числа выведите его номер по порядку, считая, что первое найденное число имеет номер «1», второе  — «2», и т. д.

### Задание 3. "Совершенное число"
Число совершенно, если оно равно сумме всех своих делителей, кроме самого себя. 

Пример: `6 = 1 + 2 + 3`. 

Проверить, является ли данное число совершенным.

> Дано целое положительно число.

> Формат выходных данных

Вывести `"Да"`, если число совершенно и `"Нет"` в противоположном случае.

  Входные данные  |  Выходные данные
---------|-------
4 | нет
6 | да
14 | Нет
22 | Нет
28 | да
100 | нет
496 | да


### Задание 4. В строке содержится последовательность целых чисел. 

Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. 

В данной задаче под парой подразумевается два идущих подряд элемента последовательности. 

Например, для последовательности из пяти элементов: `6; 2; 9; –3; 6`  – ответ: `4 11`.

> Входные данные:
```python
s = '-67 -694 835 786 -457 495 -699 -592 -405 -745 656 501 48 856 417 -600 521 221 -548 -421 -139 -293 -313 662 995 -855'
```
> Выходные: `14 1621`

### Задание 5. Решить предыдущую задачу со следующим условием: данной задаче под парой подразумевается два различных элемента последовательности.
> Выходные: `189 1781`



